SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[OV_TXMVTO_CNTB_Q01]        
/*-------------------------------------------------------------------*/                        
/*----- Empresa           : OFISIS S.A.                          ----*/                        
/*----- Cliente           : OFISIS S.A.                          ----*/                        
/*----- Sistema           : Contabilidad                         ----*/                        
/*----- Modulo            : Empresa                              ----*/                        
/*----- Programa          : Impresi«n Voucher Ajuste por Diferencia de cambio       
Docs (EN LINEA 'ORI')                                            ----*/                        
/*----- Nombre            : SP_TXMVTO_CNTB_Q42                   ----*/                        
/*----- Script            : TXMVTO_CNTB                          ----*/                        
/*----- Desarrollado por  : PDGV                                 ----*/                        
/*----- Fecha             :                                      ----*/                        
/*----- Base de Datos     : MS SQL Server                        ----*/                        
/*----- Version BD        : 8.0                                  ----*/                        
/*-------------------------------------------------------------------*/                        
/*-------------------------------------------------------------------*/                        
/*----- Modificado 1 por : Percy Garcða                          ----*/                        
/*----- Fecha Modifica   : 26/11/2003                            ----*/                        
/*----- Detalle Modifica : Se bas« en el procedure de Nuevo Mundo,---*/                       
/*----- se hicieron cambios para que sea en lðnea                ----*/                        
/*----- Factor de cambio respecto fecha asto, graba status st_dife_camb ----*/                                         
/*----- graba s«lo secs para el asiento existente                ----*/                                         
/*-------------------------------------------------------------------*/                        
/*-------------------------------------------------------------------*/                        
/*----- Modificado 2 por : LMGP                                  ----*/                        
/*----- Fecha Modifica   : 11/11/2004                            ----*/                        
/*----- Detalle Modifica : Obtencion de max. glosa en asiento    ----*/                       
/*-------------------------------------------------------------------*/                        
/*-------------------------------------------------------------------*/                        
/*----- Drop proc SP_TXMVTO_CNTB_R01                             ----*/                        
/*----- Grant execute on SP_TXMVTO_CNTB_R01 to PUBLIC                ----*/                        
/*----- SP_TXMVTO_CNTB_Q42                                                              
EXEC SP_TXMVTO_CNTB_Q01 '01',1,'001','006','0000000010','','',
'02/03/2009',2, 2009,'', '', '', '', 0, 0               ----*/                        
/*-------------------------------------------------------------------*/                        
@ISCO_EMPR           TD_VC_002,                        
@INNU_CNTB_EMPR      TD_IN_001,                        
@ISCO_UNID_CNTB      TD_VC_003,                        
@ISCO_OPRC_CNTB      TD_VC_003,                        
@ISNU_ASTO           TD_VC_010,                        
@ISCO_CNTA_EMPR      TD_VC_020,                        
@ISST_CNTA_NATU      TD_VC_003,  -- 'COM' 0 'VEN'                      
@IDFE_ASTO_CNTB      TD_DT_001,                        
@INNU_MESE           TD_IN_001,                        
@INNU_ANNO           TD_IN_001,                        
@ISTI_AUXI_EMPR      TD_VC_001,                        
@ISCO_AUXI_EMPR      TD_VC_020,                         
@ISTI_DOCU           TD_VC_003,                     
@ISNU_DOCU           TD_VC_020,                          
@INTO_CARG   TD_NU_016_004,                          
@INTO_ABON           TD_NU_016_004                          
---WITH ENCRYPTION            
As            
Declare            
 @VDFE_VOUC          TD_DT_001,            
 @VDFE_CAMB          TD_DT_001,            
 @CNIM_ORIG_SALD     TD_NU_016_004,     @CNIM_SOLE_SALD     TD_NU_016_004,            
 @CSTI_DOCU          TD_VC_003,            
 @CSNU_DOCU          TD_VC_020,                        
 @CDFE_DOCU          TD_DT_001,                        
 @VNIM_ORIG_MVTO     TD_NU_016_004,                        
 @VNIM_SOLE_MVTO     TD_NU_016_004,                        
 @VNTO_SALD_ORIG     TD_NU_016_004,                        
 @VNTO_SALD_SOLES    TD_NU_016_004,                        
 @VNTO_AJUS          TD_NU_016_004,                        
 @VSCO_CNTA_GANA     TD_VC_020,                        
 @VSCO_CNTA_PERD     TD_VC_020,                        
 @VSTI_OPER          TD_VC_003,                        
 @VNTO_CNTA_GANA     TD_NU_016_004,                        
 @VNTO_CNTA_PERD     TD_NU_016_004,                        
 @VNTO_GANA_PEND     TD_NU_016_004,                        
 @VNTO_PERD_PEND     TD_NU_016_004,                        
 @VNNU_SECU          TD_IN_001,                         
 @VNNU_SECU_PEND     TD_IN_001,                         
 @VSCO_MONE_CNTB     TD_VC_003,                        
 @VDFE_DOCU   TD_DT_001,                   
 @CSTI_AUXI_EMPR     TD_VC_001,                        
 @CSCO_AUXI_EMPR     TD_VC_100,                        
 @VSID_GANA_CAMB     TD_VC_003,                        
 @VSID_PERD_CAMB     TD_VC_003,                        
 @VNFA_CMPR_REFE     TD_NU_015_006,                        
 @VNFA_VNTA_REFE     TD_NU_015_006,                        
 @VDFE_ASTO_CNTB   TD_DT_001,                        
 @VNFA_CAMB_DIAR     TD_NU_015_006,                        
 @VSST_CNTA          TD_VC_001,                        
 @VNFA_CMPR_CNTA     TD_NU_015_006,                        
 @VNFA_VNTA_CNTA     TD_NU_015_006,                        
 @VNFA_CMPR_CNTB     TD_NU_015_006,                        
 @VNFA_VNTA_CNTB     TD_NU_015_006,                        
 @VSCO_MONE_CNTA     TD_VC_003,                        
 @VSCO_GANA_DIFE     TD_VC_020,                        
 @VSCO_PERD_DIFE     TD_VC_020,                        
 @VSCO_CNTA_AJUS     TD_VC_020, -- CUENTA SE ENVIA A PROC SP_TXMVTO_CNTB_I34 (GESTION)                       
 @VSST_AUXI_EMPR     TD_VC_001,                        
 @VSTI_AUXI_DCGA     TD_VC_001,                        
 @VSCO_AUXI_DCGA     TD_VC_020,                        
 @VSTI_AUXI_DCPE     TD_VC_001,                        
 @VSCO_AUXI_DCPE     TD_VC_100,                        
 @VSST_FLAG          TD_VC_001,                        
 @VNTO_CARG_0001     TD_NU_016_004,                        
 @VNTO_ABON_0001     TD_NU_016_004,                        
                  
 @VSID_0006          TD_VC_003,                        
 @VSID_BNCO          TD_VC_003,                        
                        
---- Multimoneda                        
 @VSST_CNTA_CAMB     TD_VC_003,                        
 @VNIM_MVTO_ORI2     TD_NU_016_004,                        
 @VNFA_CAMB          TD_NU_015_006,                        
                        
 ---- Cursor CU_TXMVTO_CNTB_I10_2                        
 @CSCO_EMPR_0002     TD_VC_002,                        
 @CSCO_CNTA_EMPR     TD_VC_020,                        
 @CNNU_CNTB_EMP2     TD_IN_001,                        
 @VDFE_ASTO_CNT2     TD_DT_001,                        
 @CNTI_CAMB_0002     TD_VC_003,                        
 @CSCO_MONE_0002     TD_VC_003,                        
 @CNFA_CAMB_0002     TD_NU_015_006,                        
 @CSTI_OPER_0002     TD_VC_003,                        
 @CNIM_MVTO_ORI2     TD_NU_016_004,                        
 @CNIM_MVTO_CNT2     TD_NU_016_004,                        
 @CSTI_AUXI_EMP2     TD_VC_001,           
 @CSCO_AUXI_EMP2     TD_VC_100,                        
 @CSTI_DOCU_0002     TD_VC_003,                        
 @CSST_CNTA_NATU     TD_VC_003,                        
 @CSNU_DOCU_0002     TD_VC_020,                          
 @CDFE_DOCU_0002     TD_DT_001,                         
 @CDFE_ASTO_0001     TD_DT_001,                        
 @VSCO_MONE_VALI     TD_VC_003,        
 @VSCO_EMPR_EVAL     TD_VC_002,        
 @VSCO_MONE_CORP     TD_VC_003        
                        
--- Inicializar-------------              
                        
 Select @VSTI_AUXI_DCGA = Null                        
 Select @VSCO_AUXI_DCGA = Null                        
 Select @VSTI_AUXI_DCPE = Null                        
 Select @VSCO_AUXI_DCPE = Null                        
                         
                       
  -- OBTIENE EL ULTIMO SECUENCIAL                         
                      
 Select @VNNU_SECU = IsNull(MAX(NU_SECU), 0) + 1                        
 From TXMVTO_CNTB                        
 Where CO_EMPR = @ISCO_EMPR                        
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR                        
 And CO_UNID_CNTB = @ISCO_UNID_CNTB                          
 And CO_OPRC_CNTB = @ISCO_OPRC_CNTB                        
 And NU_ANNO      = @INNU_ANNO                        
 And NU_MESE      = @INNU_MESE                        
 And NU_ASTO      = @ISNU_ASTO                    
                           
 Select @VSCO_MONE_CORP = CO_MONE        
 From TMCORP         
           
 /* Selecciona las cuenta de Ganacia y Perdida */                        
 Select @VSCO_MONE_CNTB = CO_MONE,                        
        @VSID_GANA_CAMB = ID_GANA_CAMB,                        
        @VSID_PERD_CAMB = ID_PERD_CAMB                         
 From TTCNTB_EMPR                        
 Where CO_EMPR = @ISCO_EMPR                        
 and NU_CNTB_EMPR = @INNU_CNTB_EMPR                        
                        
 Select @VSST_AUXI_EMPR = 'N'                        
 Select @VSCO_CNTA_GANA = t1.CO_CNTA_EMPR,                        
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR                        
 From TTIDEN_CNTA t1, oficont.dbo.TMPLAN_ANNO t2                        
 Where t1.CO_EMPR = @ISCO_EMPR                         
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                         
 And t1.ID_CNTA = @VSID_GANA_CAMB                        
 And t2.CO_EMPR = t1.CO_EMPR                        
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                        
                        
 If @VSST_AUXI_EMPR = 'S'                        
   Begin                        
     Select @VSTI_AUXI_DCGA = TI_AUXI_DCGA,                        
            @VSCO_AUXI_DCGA = CO_AUXI_DCGA                        
     From   TMPARA_CONT                        
     Where  CO_EMPR = @ISCO_EMPR                         
   End                        
                        
 Select @VSST_AUXI_EMPR = 'N'                        
 Select @VSCO_CNTA_PERD = t1.CO_CNTA_EMPR,                        
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR                        
 From TTIDEN_CNTA t1, oficont.dbo.TMPLAN_ANNO t2                        
 Where t1.CO_EMPR = @ISCO_EMPR                         
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                         
 And t1.ID_CNTA = @VSID_PERD_CAMB                        
 And t2.CO_EMPR = t1.CO_EMPR                        
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                   
                       
 If @VSST_AUXI_EMPR = 'S'                        
   Begin                        
     Select @VSTI_AUXI_DCPE = TI_AUXI_DCPE,                        
            @VSCO_AUXI_DCPE = CO_AUXI_DCPE                        
     From TMPARA_CONT                        
     Where CO_EMPR = @ISCO_EMPR                         
   End                        
                                   
/*Seccion para cuentAs que tengan Auxiliar */                        
 Select @CNIM_ORIG_SALD = 0                        
 Select @CNIM_SOLE_SALD = 0                        
 Select @VNIM_ORIG_MVTO = 0                        
 Select @VNIM_SOLE_MVTO = 0                        
 Select @VNTO_CNTA_GANA = 0                        
 Select @VNTO_CNTA_PERD = 0                        
 Select @VNTO_GANA_PEND = 0                        
 Select @VNTO_PERD_PEND = 0                        
 Select @VNTO_SALD_ORIG = 0                         
 Select @VNTO_SALD_SOLES  = 0                        
 Select @VNTO_AJUS = 0                        
                         
 Create Table #TWMVTO_CNTB                   
 ( CO_EMPR Varchar(2) NULL,                   
 NU_CNTB_EMPR Int NULL,                   
 CO_UNID_CNTB Varchar(3) NULL,                   
 CO_OPRC_CNTB Varchar(3) NULL,                   
 NU_ANNO Int NULL,                  
 NU_MESE Int NULL,                        
 NU_ASTO Varchar(10) NULL,                   
 NU_SECU Int NULL,                   
 FE_ASTO_CNTB DateTime NULL,                   
 CO_CNTA_EMPR Varchar(20) NULL,                   
 TI_AUXI_EMPR Varchar(1) NULL,                   
 CO_AUXI_EMPR Varchar(100) NULL,                   
 TI_DOCU Varchar(3) NULL,                   
 NU_DOCU Varchar(20) NULL,                        
 FE_DOCU DateTime NULL,                   
 TI_CAMB Varchar(3) NULL,                   
 CO_MONE Varchar(3) NULL,                   
 FA_CAMB Numeric(15, 6) NULL,                   
 TI_OPER Varchar(3) NULL,                   
 IM_MVTO_ORIG Numeric(16, 4) NULL,                   
 IM_MVTO_CNTB Numeric(16, 4) NULL,                   
 DE_GLOS Varchar(100) NULL,                   
 SI_MVTO_CNTB Varchar(3) NULL,                
 NO_GIRA Varchar(50) NULL,                   
 ST_GEST Varchar(1) NULL,                   
 ST_REDO Varchar(1) NULL,                   
 ST_DIFE_CAMB Varchar(1) NULL,                   
 FA_CAMB_DIAR Numeric(15, 6) NULL)                        
                  
 Create table #TWMVTO_CNT1                        
 (CO_EMPR       varchar(2) NULL,                        
  NU_CNTB_EMPR  integer NULL,                        
  FE_ASTO_CNTB  datetime NULL,                        
  TI_CAMB       varchar(3) NULL,                        
  CO_MONE       varchar(3) NULL,                        
 FA_CAMB       numeric(15,6) NULL,                        
  TI_OPER       varchar(3) NULL,                        
  IM_MVTO_ORIG  numeric(16,4) NULL,                        
  IM_MVTO_CNTB  numeric(16,4) NULL,                        
  CO_CNTA_EMPR  Varchar(20) NULL,                   
  TI_AUXI_EMPR  varchar(1) NULL,                        
  CO_AUXI_EMPR  varchar(100) NULL,                        
  TI_DOCU       varchar(3) NULL,                        
  ST_CNTA_NATU  varchar(3) NULL,                        
  NU_DOCU       varchar(20) NULL,                        
  FE_DOCU       datetime NULL,                       
  FE_ASTO_0001  DateTime NULL)                        
                        
 ---- #TWMVTO_CNT2 guarda data para cursor CU_TXMVTO_CNTB_I10_1                        
 Create table #TWMVTO_CNT2                        
 (CO_CNTA_EMP2  Varchar(20) NULL,                   
  TI_AUXI_EMP2  varchar(1) NULL,                        
  CO_AUXI_EMP2  varchar(100) NULL,                        
  TI_DOC2       varchar(3) NULL,                        
  NU_DOC2       varchar(20) NULL,                        
  FE_DOCU       datetime NULL,                         
  TI_OPER_0002  varchar(3) NULL,                        
  IM_MVTO_ORI2  numeric(16,4) NULL,                        
  IM_MVTO_CNT2  numeric(16,4)  NULL,                      
  FE_ASTO_0001  DateTime NULL)                        
                  
 Select @VSCO_MONE_VALI = ''        
        
 Select @VSID_0006 = ID_0006, @VSID_BNCO = ID_BNCO,        
 @VSCO_MONE_VALI = IsNull(CO_MONE, '')                   
 From TTCNTB_EMPR                   
 Where CO_EMPR = @ISCO_EMPR                   
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR                   
                  
 Declare CU_TXMVTO_CNTB_Q41_1 Cursor For                   
 Select t1.CO_CNTA_EMPR, t1.TI_AUXI_EMPR, t1.CO_AUXI_EMPR, t1.TI_DOCU, t1.NU_DOCU                  
 From TXMVTO_CNTB t1, oficont.dbo.TMPLAN_ANNO t2         
 Where t1.CO_EMPR = @ISCO_EMPR                  
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                   
 And t1.CO_UNID_CNTB = @ISCO_UNID_CNTB                  
 And t1.NU_ANNO = @INNU_ANNO                  
 And t1.NU_MESE = @INNU_MESE                  
 And t1.CO_OPRC_CNTB = @ISCO_OPRC_CNTB                  
 And t1.NU_ASTO = @ISNU_ASTO                 
 And t1.SI_MVTO_CNTB =  'APR'                  
 And t1.ST_DIFE_CAMB =  'N'                 
 And t2.CO_EMPR = t1.CO_EMPR                
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR                
 And t2.ST_DOCU_CNTB = 'S'        
 And t2.ST_CNTA_MONE = 'S'         
 And t2.CO_MONE != @VSCO_MONE_VALI        
 And t2.ST_CNTA_CTES = 'DOC'         
                  
 Open CU_TXMVTO_CNTB_Q41_1                        
 Fetch CU_TXMVTO_CNTB_Q41_1 Into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU                  
 While @@Fetch_status = 0                        
   Begin                
        
---- SE AUMENTO ESTAS LINEA CASO CANCELACIONES PARCIALES        
 Select @VSCO_EMPR_EVAL = ''        
        
 Select @VSCO_EMPR_EVAL = CO_EMPR         
 From TXMVTO_CNTB        
Where CO_EMPR = @ISCO_EMPR         
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR         
 And NU_ANNO      =  @INNU_ANNO        
 And NU_MESE      =  @INNU_MESE        
 And CO_CNTA_EMPR = @CSCO_CNTA_EMPR         
 And TI_AUXI_EMPR = @CSTI_AUXI_EMPR         
 And CO_AUXI_EMPR = @CSCO_AUXI_EMPR        
 And TI_DOCU = @CSTI_DOCU         
 And NU_DOCU = @CSNU_DOCU        
 And SI_MVTO_CNTB = 'APR'        
 And ST_DIFE_CAMB = 'S'        
 And CO_UNID_CNTB + CO_OPRC_CNTB + NU_ASTO != @ISCO_UNID_CNTB + @ISCO_OPRC_CNTB + @ISNU_ASTO        
                  
 If Rtrim(Ltrim(IsNull(@VSCO_EMPR_EVAL, ''))) = '' --- SI NO HAY EN OTRA CANCELACION ENTONCES INSERTA        
 Begin         
 Insert into #TWMVTO_CNT1 (CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,         
 IM_MVTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_0001, ST_CNTA_NATU)        
 Select CO_EMPR, @INNU_CNTB_EMPR, @VDFE_VOUC, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,         
 CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_CNTB, TI_CAMB        
 From  TXMVTO_CNTB                   
 Where CO_EMPR = @ISCO_EMPR                         
  And NU_CNTB_EMPR = @INNU_CNTB_EMPR                         
  And NU_ANNO = @INNU_ANNO                         
  And NU_MESE  <= @INNU_MESE                         
  And CO_CNTA_EMPR  = @CSCO_CNTA_EMPR                         
  And TI_AUXI_EMPR = @CSTI_AUXI_EMPR                         
  And CO_AUXI_EMPR = @CSCO_AUXI_EMPR                         
  And TI_DOCU = @CSTI_DOCU                         
  And NU_DOCU = @CSNU_DOCU                        
  And SI_MVTO_CNTB  = 'APR'                         
  And ST_DIFE_CAMB = 'N'                      
  Order By TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU                               
 End        
                  
 Fetch CU_TXMVTO_CNTB_Q41_1 Into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU                  
 End                      
 Close CU_TXMVTO_CNTB_Q41_1                        
 Deallocate CU_TXMVTO_CNTB_Q41_1                        
                  
 ---- Cursor para convertir importe original en importe moneda contabilidad                        
 Declare CU_TXMVTO_CNTB_Q41_2 Cursor                        
 For                         
   Select CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE, FA_CAMB,                        
          TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
          TI_DOCU, NU_DOCU, FE_DOCU, FE_ASTO_0001, ST_CNTA_NATU                        
   From  #TWMVTO_CNT1                        
   Order by TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU                        
          
 Open CU_TXMVTO_CNTB_Q41_2                        
 Fetch CU_TXMVTO_CNTB_Q41_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,                        
 @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,                        
 @CNIM_MVTO_CNT2, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002, @CSNU_DOCU_0002,                        
 @CDFE_DOCU, @CDFE_ASTO_0001, @CSST_CNTA_NATU                  
                        
 While @@Fetch_status = 0                        
   Begin                        
     ---- Convierte importe original en importe moneda contabilidad                         
                        
/*     Exec SP_CONV_MONE_Q01  @CSCO_EMPR_0002, @CSCO_MONE_0002, @CNNU_CNTB_EMP2, @CNTI_CAMB_0002,                        
       @CSST_CNTA_NATU, @CNFA_CAMB_0002, @VDFE_ASTO_CNT2, @CNIM_MVTO_ORI2, 'P', @VNIM_MVTO_ORI2 Output                        
                      
     If @CNIM_MVTO_ORI2 = 0.00            */            
       Select @VNIM_MVTO_ORI2 = @CNIM_MVTO_CNT2                        
                        
     ---- Inserta tabla temporal #TWMVTO_CNT2, campos serabn usados en el cursor CU_TXMVTO_CNTB_I10_1                        
     Insert Into #TWMVTO_CNT2 Values(@CSCO_CNTA_EMPR, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002,                        
     @CSNU_DOCU_0002, @CDFE_DOCU, @CSTI_OPER_0002, @CNIM_MVTO_ORI2, @VNIM_MVTO_ORI2, @CDFE_ASTO_0001 )                         
            
 Fetch CU_TXMVTO_CNTB_Q41_2 Into @CSCO_EMPR_0002, @CNNU_CNTB_EMP2, @VDFE_ASTO_CNT2,                        
 @CNTI_CAMB_0002, @CSCO_MONE_0002, @CNFA_CAMB_0002, @CSTI_OPER_0002, @CNIM_MVTO_ORI2,                        
 @CNIM_MVTO_CNT2, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMP2, @CSCO_AUXI_EMP2, @CSTI_DOCU_0002, @CSNU_DOCU_0002,                        
 @CDFE_DOCU, @CDFE_ASTO_0001, @CSST_CNTA_NATU                        
 End /* While @@Fetch_status =0 */                        
                        
 Close CU_TXMVTO_CNTB_Q41_2                        
 Deallocate CU_TXMVTO_CNTB_Q41_2                        
                  
                  
-- Select @VSST_FLAG = 'N'                      
 Declare CU_TXMVTO_CNTB_Q41_3 Cursor                        
 For                         
   Select   CO_CNTA_EMP2, TI_DOC2, NU_DOC2, Max(FE_DOCU), TI_AUXI_EMP2, CO_AUXI_EMP2,              
        
 Isnull(SUM( ( ROUND(((ASCII(TI_OPER_0002)/67)* Isnull(IM_MVTO_ORI2, 0)),2) - ROUND(( (65/ASCII(TI_OPER_0002))* Isnull(IM_MVTO_ORI2, 0) ),2))), 0),                        
     Isnull(SUM( ( ROUND(((ASCII(TI_OPER_0002)/67)* Isnull(IM_MVTO_CNT2, 0)),2) - ROUND(( (65/ASCII(TI_OPER_0002))* Isnull(IM_MVTO_CNT2, 0) ),2))), 0),                       
     Min(FE_ASTO_0001)                          
   From #TWMVTO_CNT2                        
   Group By CO_CNTA_EMP2, TI_AUXI_EMP2, CO_AUXI_EMP2, TI_DOC2, NU_DOC2                  
   Order By CO_CNTA_EMP2, TI_AUXI_EMP2, CO_AUXI_EMP2, TI_DOC2, NU_DOC2                  
                        
 Open CU_TXMVTO_CNTB_Q41_3                        
 Fetch CU_TXMVTO_CNTB_Q41_3 Into @CSCO_CNTA_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                         
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_ASTO_0001                        
                         
 While @@Fetch_status = 0                        
   Begin                        
                        
 -- EVALUA QUE SOLO GRABE PARA LAS CANCELACIONES                       
 If @CDFE_ASTO_0001 != @IDFE_ASTO_CNTB And @CNIM_ORIG_SALD = 0                     
 Begin                       
/*-------------INICIO CALCULO FACTOR DE CAMBIO (SOLO INGRESA 1 VEZ)------------------------*/                      
                  
---- Si hay amarre con Cuentas de Dif De cambio en la TMPLAN_EMPR. Toma esas cuentas------------                        
 Select @VSCO_GANA_DIFE = Ltrim(Rtrim(IsNull(CO_GANA_DIFE,''))),                        
        @VSCO_PERD_DIFE = Ltrim(Rtrim(IsNull(CO_PERD_DIFE,'')))                        
 From  TMPLAN_EMPR                        
 Where CO_EMPR = @ISCO_EMPR                        
 And   CO_CNTA_EMPR = @CSCO_CNTA_EMPR                        
                        
 If @VSCO_GANA_DIFE <> '' And @VSCO_PERD_DIFE <> ''                        
   Begin                        
     Select @VSCO_CNTA_GANA = @VSCO_GANA_DIFE              
     Select @VSCO_CNTA_PERD = @VSCO_PERD_DIFE                        
   End                  
                      
-- If @VSST_FLAG = 'N'                       
-- Begin                       
 Select @VSCO_MONE_CNTA = CO_MONE                        
 From TMPLAN_EMPR                        
 Where CO_EMPR = @ISCO_EMPR                        
 and CO_CNTA_EMPR = @CSCO_CNTA_EMPR                        
 And NU_ANNO = 9999              
                       
/*----------- Para obtener el factor de la moneda de la cuenta -------*/                        
 SELECT @VNFA_CMPR_CNTA = FA_CMPR_OFIC, @VNFA_VNTA_CNTA = FA_VNTA_OFIC                        
 FROM TCFACT_CAMB                        
 WHERE CO_MONE = @VSCO_MONE_CNTA                        
 And   FE_CAMB = @CDFE_ASTO_0001                      
                        
/*------------- Para obtener el factor de la moneda de la contabilidad ----------*/                        
 SELECT @VNFA_CMPR_CNTB = FA_CMPR_OFIC, @VNFA_VNTA_CNTB = FA_VNTA_OFIC                         
 FROM TCFACT_CAMB                        
 WHERE CO_MONE = @VSCO_MONE_CNTB                        
 And   FE_CAMB = @CDFE_ASTO_0001                      
                        
 if @VNFA_CMPR_CNTA is NULL                        
   Select @VNFA_CMPR_CNTA = 1.00                        
                        
 if @VNFA_VNTA_CNTA is NULL                        
   Select @VNFA_VNTA_CNTA = 1.00                        
                        
 if @VNFA_CMPR_CNTB is NULL                        
   Select @VNFA_CMPR_CNTB = 1.00                        
                        
 if @VNFA_VNTA_CNTB is NULL                        
   Select @VNFA_VNTA_CNTB = 1.00                        
                        
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA / @VNFA_CMPR_CNTB                        
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA / @VNFA_VNTA_CNTB                        
                        
 If @VNFA_CMPR_REFE IS NULL                        
  Select @VNFA_CMPR_REFE = 1.00                        
                        
 If @VNFA_VNTA_REFE IS NULL                        
  Select @VNFA_VNTA_REFE = 1.00                        
                      
 Select @VSST_FLAG = 'S'                      
                       
-- End                       
                      
/*-----FIN CALCULO FACTOR DE CAMBIO -----------------*/                      
                      
     Select @VNTO_SALD_ORIG = 0                        
     Select @VNTO_SALD_SOLES  = 0           
     Select @VNTO_AJUS = 0                        
     Select @VNTO_SALD_ORIG = ROUND(@CNIM_ORIG_SALD,2)                        
     Select @VNTO_SALD_SOLES  = ROUND(@CNIM_SOLE_SALD,2)                        
                        
     If @ISST_CNTA_NATU = 'COM'                        
       Begin                        
         Select @VNTO_SALD_ORIG = @VNTO_SALD_ORIG * @VNFA_CMPR_REFE                        
       End                        
     Else                        
       Begin                        
         Select @VNTO_SALD_ORIG = @VNTO_SALD_ORIG * @VNFA_VNTA_REFE                        
       End                        
                        
     Select @VNTO_AJUS = ROUND(@VNTO_SALD_ORIG,2) - ROUND(@VNTO_SALD_SOLES,2)                        
                        
     If @VNTO_AJUS != 0.00                        
       Begin                         
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                         
           Begin                           
             Select @VNTO_AJUS = ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)                        
         
             If @VNTO_AJUS > 0.00                        
               Begin                          
                        
                  -- @IDFE_ASTO_CNTB EL LUGAR DE  @VDFE_VOUC                        
                 Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)                        
                 /*Comentario : Insercion del Asiento de Ajuste*/                        
                 Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                        
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                        
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                         
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                         
                 FA_CAMB_DIAR)                        
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
                 @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
                 'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 'S', 1.000000)                        
                 Select @VNNU_SECU = @VNNU_SECU + 1                        
               End /* If @VNTO_AJUS > 0 */                 
                        
             If @VNTO_AJUS < 0.00                        
               Begin                         
                 /*Comentario : Insercion del Asiento de Ajuste*/                        
                 Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                        
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU,FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                        
     CO_AUXI_EMPR, TI_DOCU, NU_DOCU,  FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                        
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                        
                 FA_CAMB_DIAR)                        
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
                 @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,                         
                 'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO','APR', '  ', 'N', 'N', 'S', 1.000000)                        
                 Select @VNNU_SECU = @VNNU_SECU + 1                        
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                        
          End /* If @VNTO_AJUS < 0 */                        
           End  /* If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES > 0 ) */                                       
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                        
           Begin                        
             Select @VNTO_AJUS = abs(ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)                        
             If @VNTO_AJUS > 0.00                        
               Begin                        
                 /*Comentario : Insercion del Asiento de Ajuste */                        
                 Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                        
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                        
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                        
   IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                          
                 FA_CAMB_DIAR)                        
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
                 @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB,                        
                 1.000000, 'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S',                    
                 1.000000)                        
                 Select @VNNU_SECU = @VNNU_SECU + 1                        
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                        
               End /* If @VNTO_AJUS > 0 */                        
                                 
             If @VNTO_AJUS < 0.00                        
               Begin                        
           Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))                        
                 /*Comentario : Insercion del Asiento de Ajuste*/                        
                 Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,                      
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,                        
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU,FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,                        
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB,                          
                FA_CAMB_DIAR)                        
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
                 @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,                        
     'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 'S', 1.000000)                        
                 Select @VNNU_SECU = @VNNU_SECU + 1                        
               End /* If @VNTO_AJUS < 0 */                        
           End /*If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES < 0 ) */                        
                        
         If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                        
           Begin                        
             Select @VNTO_AJUS =  (0.00 - ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)                        
             If @VNTO_AJUS > 0.00                        
               Begin                        
               /*Comentario : Insercion del Asiento de Ajuste*/                        
               Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,                        
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
               'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000)                        
              Select @VNNU_SECU = @VNNU_SECU + 1                        
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                            
             End /* If @VNTO_AJUS > 0 */                        
                        
           If @VNTO_AJUS < 0.00                        
             Begin                        
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))                        
               /*Comentario : Insercion del Asiento de Ajuste*/                        
               Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,                        
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
        @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
               'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000)                        
               Select @VNNU_SECU = @VNNU_SECU + 1                        
             End /* If @VNTO_AJUS < 0      */                        
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                        
                        
       If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                        
         Begin                        
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)                        
           If @VNTO_AJUS > 0.00                        
             Begin                        
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)                        
               /*Comentario : Insercion del Asiento de Ajuste*/                        
               Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                        
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                       
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR',  '  ', 'N', 'N', 'S', 1.000000)                        
               Select @VNNU_SECU = @VNNU_SECU + 1                        
             End /* If @VNTO_AJUS > 0 */                        
                        
           If @VNTO_AJUS < 0.00                        
             Begin                        
               /*Comentario : Insercion del Asiento de Ajuste*/                        
           Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,            
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000)                        
               Select @VNNU_SECU = @VNNU_SECU + 1                        
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                            
             End /* If @VNTO_AJUS < 0      */                        
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                              
                        
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )                        
         Begin                        
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)                        
           If @VNTO_AJUS > 0.00                        
             Begin                        
             Select @VNTO_CNTA_PERD = @VNTO_CNTA_PERD + ROUND(@VNTO_AJUS,2)                            
               /*Comentario : Insercion del Asiento de Ajuste*/                        
               Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                        
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,                        
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S',1.000000)                        
               Select @VNNU_SECU = @VNNU_SECU + 1                        
             End                        
         End /*If( @VNTO_SALD_ORIG = 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                         
                        
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )                        
         Begin                    
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)                        
           If @VNTO_AJUS < 0.00                 
          Begin                        
               /* Insercion del Asiento de Ajuste*/                        
               Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,                        
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,                        
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,                        
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,                        
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR,                        
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,           
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 'S', 1.000000)                        
               Select @VNNU_SECU = @VNNU_SECU + 1                      
               Select @VNTO_CNTA_GANA = @VNTO_CNTA_GANA - abs(ROUND(@VNTO_AJUS,2))                        
             End                         
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                        
     End    /*If @VNTO_AJUS != 0 */                        
                  
                  
/* Insercion de cuenta de pTrdida en diferencia de cambio      */                        
 If @VNTO_CNTA_PERD != 0.00                        
   Begin                              
     If @VNTO_CNTA_PERD > 0.00                        
       Begin                        
         Select @VSTI_OPER = 'CAR'                        
       End                                
     Else If @VNTO_CNTA_PERD < 0.00                        
       Begin                        
         Select @VSTI_OPER = 'ABO'                        
       End                        
                        
     /*Comentario : Insercion del Asiento de Ajuste*/                        
     Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,                        
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                        
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                         
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                        
     @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,                        
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_PERD), 'AJUST x DIF.CAMBIO',                        
     'APR', '  ', 'N', 'N', 'S', 1.000000)                        
--**     Select @VNNU_SECU = @VNNU_SECU + 1                        
   End                        
                        
/* Insercion de cuenta de pTrdida en diferencia de cambio Pendiente */                        
 If @VNTO_PERD_PEND != 0.00                        
   Begin                              
     If @VNTO_PERD_PEND > 0.00                        
       Begin                        
         Select @VSTI_OPER = 'CAR'                        
       End                                
     Else If @VNTO_PERD_PEND < 0.00                        
       Begin                        
         Select @VSTI_OPER = 'ABO'                        
       End                        
                        
     /*Comentario : Insercion del Asiento de Ajuste*/                        
     Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,                        
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                        
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                         
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                        
     @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,                        
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_PERD_PEND), 'AJUST x DIF.CAMBIO',                        
     'APR', '  ', 'N', 'N', 'S', 1.000000)                        
--**     Select @VNNU_SECU = @VNNU_SECU + 1                         
   End                        
                        
/* Insercion de cuenta de ganancia en diferencia de cambio */                        
 If @VNTO_CNTA_GANA != 0.00                        
   Begin                        
     If @VNTO_CNTA_GANA > 0.00                        
       Begin                        
         Select @VSTI_OPER = 'CAR'                        
       End                                
     Else If @VNTO_CNTA_GANA < 0.00                        
       Begin                        
         Select @VSTI_OPER = 'ABO'                         End                        
     /*Comentario :Insercion del Asiento de Ajuste*/                        
     Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,                        
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                        
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                        
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                        
     @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,                        
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_GANA), 'AJUST x DIF.CAMBIO',                        
     'APR', '  ', 'N', 'N', 'S', 1.000000)                        
   End                        
                        
/* Insercion de cuenta de ganancia en diferencia de cambio */                        
 If @VNTO_GANA_PEND != 0.00                        
   Begin                        
     If @VNTO_GANA_PEND > 0.00                        
       Begin                        
         Select @VSTI_OPER = 'CAR'                        
       End                                
     Else If @VNTO_GANA_PEND < 0.00                        
       Begin                        
         Select @VSTI_OPER = 'ABO'                        
       End                        
     /*Comentario :Insercion del Asiento de Ajuste*/                        
     Insert Into #TWMVTO_CNTB ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,                        
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,                        
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,                        
     NO_GIRA, ST_GEST, ST_REDO, ST_DIFE_CAMB, FA_CAMB_DIAR)                        
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,                        
     @ISNU_ASTO, @VNNU_SECU, @IDFE_ASTO_CNTB, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,                        
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_GANA_PEND), 'AJUST x DIF.CAMBIO',                        
     'APR', '  ', 'N', 'N', 'S', 1.000000)                        
   End                        
 Select @VNTO_GANA_PEND = 0                  
 Select @VNTO_PERD_PEND = 0                  
 Select @VNTO_CNTA_GANA = 0                  
 Select @VNTO_CNTA_PERD = 0                  
                  
    If @VNTO_PERD_PEND != 0 Or @VNTO_CNTA_PERD != 0                       
      Select @VSCO_CNTA_AJUS = @VSCO_CNTA_PERD                      
                      
    If @VNTO_GANA_PEND != 0 Or @VNTO_CNTA_GANA != 0                       
      Select @VSCO_CNTA_AJUS = @VSCO_CNTA_GANA                      
                         
    Exec OFICONT.dbo.SP_TXMVTO_CNTB_Q43 @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB,                        
    @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE, @ISNU_ASTO, @VSCO_CNTA_AJUS, 'ORI', @VSID_GANA_CAMB, @VSID_PERD_CAMB,                   
    @VNNU_SECU, @VNNU_SECU OUT                  
                  
    Select @VNNU_SECU = @VNNU_SECU +  1                  
                     
                     
 End /*FIN  -- EVALUA QUE SOLO GRABE PARA LAS CANCELACIONES */                      
                      
 Fetch CU_TXMVTO_CNTB_Q41_3 Into @CSCO_CNTA_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,                         
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_ASTO_0001                        
                        
 End /* While @@Fetch_status =0 */                        
 Close CU_TXMVTO_CNTB_Q41_3                        
 Deallocate CU_TXMVTO_CNTB_Q41_3                        
                               
 Select @VNTO_CARG_0001 = IsNull( SUM( ( ROUND( ((ASCII(TI_OPER)/67) * Isnull(IM_MVTO_CNTB, 0)), 2))), 0),                  
 @VNTO_ABON_0001 = IsNull( SUM( ( ROUND( ((65/ASCII(TI_OPER)) * Isnull(IM_MVTO_CNTB, 0)), 2))), 0)                  
 From #TWMVTO_CNTB              
          
 Select @VNTO_CARG_0001 = @INTO_CARG + IsNull(@VNTO_CARG_0001, 0)                  
 Select @VNTO_ABON_0001 = @INTO_ABON + IsNull(@VNTO_ABON_0001, 0)                  
                  
 Select  T1.NU_SECU 'SECUENCIAL'  ,  T1.CO_CNTA_EMPR 'CUENTA', T5.DE_CNTA_EMPR 'DESCRIPCIÓN CUENTA',  
 T1.TI_AUXI_EMPR 'TIPO AUXILIAR'  ,  T1.CO_AUXI_EMPR 'CODIGO AUXILIAR',  
 T3.NO_AUXI 'DESCRIPCION AUXILIAR',  T1.TI_DOCU 'DOCUMENTO',   
 T1.NU_DOCU 'NUMERO DOC.', Convert(Varchar(10), T1.FE_DOCU,103) 'FECHA DOC.',   
 T1.TI_OPER 'OPERACION', T1.CO_MONE 'MONEDA',T1.FA_CAMB 'FACTOR CAMBIO',   
 T1.IM_MVTO_ORIG 'IMPORTE ORIGEN', T1.CO_ORDE_SERV 'ORDEN SERVICIO',    
 T4.DE_ORDE_SERV 'DESCRIPCION ORDEN SERVICIO',T1.TI_DOCU_REFE 'DOC.REFERENCIA',   
 T1.NU_DOCU_REFE 'NUM.DOC.REFERENCIA',             
 (Select T2.DE_GLOS from TXMVTO_CNTB T2            
  Where T1.CO_EMPR = T2.CO_EMPR             
  And  T1.NU_CNTB_EMPR  = T2.NU_CNTB_EMPR              
  And  T1.CO_UNID_CNTB  = T2.CO_UNID_CNTB              
  And  T1.NU_ANNO  = T2.NU_ANNO                
  And  T1.NU_MESE  = T2.NU_MESE                
  And  T1.CO_OPRC_CNTB  = T2.CO_OPRC_CNTB              
  And  T1.NU_ASTO  = T2.NU_ASTO             
  And  T1.NU_SECU=T2.NU_SECU  
  And  T2.ST_GEST = 'N'            
  And  T2.ST_REDO = 'N'            
  And  T2.ST_DIFE_CAMB = 'N' ) 'GLOSA', T1.IM_MVTO_CNTB 'IMPORTE CONTABLE',         
 oficont.DBO.FU_CONV_MONE(T1.CO_MONE, @VSCO_MONE_CORP, T1.TI_CAMB, T1.FA_CAMB_DIAR, T1.IM_MVTO_ORIG, T1.NU_ANNO, T1.NU_MESE) 'IMPORTE MON CORPORATIVA',        
 T1.CO_CLAV_TAOR 'ORIGEN', T1.NO_GIRA 'GIRADO A', @VNTO_CARG_0001 'TOTAL CARGO', @VNTO_ABON_0001 'TOTAL ABONO'                  
 From TXMVTO_CNTB T1            
 INNER JOIN TMAUXI_EMPR T3 ON T3.CO_EMPR=T1.CO_EMPR AND T3.TI_AUXI_EMPR=T1.TI_AUXI_EMPR AND T3.CO_AUXI_EMPR=T1.CO_AUXI_EMPR     
 LEFT JOIN TMORDE_SERV T4  ON T4.CO_EMPR=T1.CO_EMPR AND T4.CO_ORDE_SERV=T1.CO_ORDE_SERV     
 INNER JOIN TMPLAN_EMPR T5 ON T5.CO_EMPR=T1.CO_EMPR AND T5.CO_CNTA_EMPR=T1.CO_CNTA_EMPR   
 Where T1.CO_EMPR = @ISCO_EMPR                  
 And   T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                  
 And   T1.CO_UNID_CNTB = @ISCO_UNID_CNTB                  
 And   T1.NU_ANNO = @INNU_ANNO                  
 And   T1.NU_MESE = @INNU_MESE                  
 And   T1.CO_OPRC_CNTB = @ISCO_OPRC_CNTB                  
 And   T1.NU_ASTO = @ISNU_ASTO                  
 And   T1.SI_MVTO_CNTB In ('APR', 'DIG')            
 UNION ALL    
 Select T1.NU_SECU 'SECUENCIAL', T1.CO_CNTA_EMPR 'CUENTA', T5.DE_CNTA_EMPR 'DESCRIPCIÓN CUENTA',  
 T1.TI_AUXI_EMPR 'TIPO AUXILIAR',                  
 T1.CO_AUXI_EMPR 'CODIGO AUXILIAR',T3.NO_AUXI 'DESCRIPCION AUXILIAR',      
 T1.TI_DOCU 'DOCUMENTO', T1.NU_DOCU 'NUMERO DOC.',                  
 Convert(Varchar(10), T1.FE_DOCU,103) 'FECHA DOC.', T1.TI_OPER 'OPERACION', T1.CO_MONE 'MONEDA',                  
 T1.FA_CAMB 'FACTOR CAMBIO', T1.IM_MVTO_ORIG 'IMPORTE ORIGEN',       
 T1.CO_ORDE_SERV 'ORDEN SERVICIO', T4.DE_ORDE_SERV 'DESCRIPCION ORDEN SERVICIO',                 
 T1.TI_DOCU_REFE 'DOC.REFERENCIA', T1.NU_DOCU_REFE 'NUM.DOC.REFERENCIA',             
 (Select max(T2.DE_GLOS) from TXMVTO_CNTB T2            
  Where T1.CO_EMPR = T2.CO_EMPR             
  And  T1.NU_CNTB_EMPR  = T2.NU_CNTB_EMPR              
  And  T1.CO_UNID_CNTB  = T2.CO_UNID_CNTB              
  And  T1.NU_ANNO  = T2.NU_ANNO                
  And  T1.NU_MESE  = T2.NU_MESE                
  And  T1.CO_OPRC_CNTB  = T2.CO_OPRC_CNTB              
  And  T1.NU_ASTO  = T2.NU_ASTO             
  And  T2.ST_GEST = 'N'            
  And  T2.ST_REDO = 'N'            
  And  T2.ST_DIFE_CAMB = 'N' ) 'GLOSA', T1.IM_MVTO_CNTB 'IMPORTE CONTABLE',         
 oficont.DBO.FU_CONV_MONE(T1.CO_MONE, @VSCO_MONE_CORP, T1.TI_CAMB, T1.FA_CAMB_DIAR, T1.IM_MVTO_ORIG, T1.NU_ANNO, T1.NU_MESE) 'IMPORTE MON CORPORATIVA',        
 T1.CO_CLAV_TAOR 'ORIGEN', T1.NO_GIRA 'GIRADO A', @VNTO_CARG_0001 'TOTAL CARGO', @VNTO_ABON_0001 'TOTAL ABONO'                  
 From TXMVTO_CNTB T1      
 LEFT JOIN TMAUXI_EMPR  T3 ON T3.CO_EMPR=T1.CO_EMPR AND T3.TI_AUXI_EMPR=T1.TI_AUXI_EMPR AND T3.CO_AUXI_EMPR=T1.CO_AUXI_EMPR     
 LEFT JOIN TMORDE_SERV  T4 ON T4.CO_EMPR=T1.CO_EMPR AND T4.CO_ORDE_SERV=T1.CO_ORDE_SERV      
 INNER JOIN TMPLAN_EMPR T5 ON T5.CO_EMPR=T1.CO_EMPR AND T5.CO_CNTA_EMPR=T1.CO_CNTA_EMPR  
 Where T1.CO_EMPR = @ISCO_EMPR                  
 And   T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR                  
 And   T1.CO_UNID_CNTB = @ISCO_UNID_CNTB                  
 And   T1.NU_ANNO = @INNU_ANNO                  
 And   T1.NU_MESE = @INNU_MESE                  
 And   T1.CO_OPRC_CNTB = @ISCO_OPRC_CNTB                  
 And   T1.NU_ASTO = @ISNU_ASTO           
 AND   ISNULL(T3.TI_AUXI_EMPR,'')=''    
 And   T1.SI_MVTO_CNTB In ('APR', 'DIG')              
 Union All                  
 Select  T1.NU_SECU 'SECUENCIAL', T1.CO_CNTA_EMPR 'CUENTA', T4.DE_CNTA_EMPR 'DESCRIPCIÓN CUENTA',  
 T1.TI_AUXI_EMPR 'TIPO AUXILIAR', T1.CO_AUXI_EMPR 'CODIGO AUXILIAR',  T3.NO_AUXI 'DESCRIPCION AUXILIAR',    
 T1.TI_DOCU 'DOCUMENTO', T1.NU_DOCU 'NUMERO DOC.',                  
 Convert(Varchar(10), T1.FE_DOCU,103) 'FECHA DOC.', T1.TI_OPER 'OPERACION', T1.CO_MONE 'MONEDA',                  
 T1.FA_CAMB 'FACTOR CAMBIO', T1.IM_MVTO_ORIG 'IMPORTE ORIGEN', NULL 'ORDEN SERVICIO',                  
 NULL 'DESCRIPCION ORDEN SERV',NULL 'DOC. REFERENCIA', NULL 'NUM.DOC.REFERENCIA',            
 (Select T2.DE_GLOS from #TWMVTO_CNTB T2            
  Where T1.CO_EMPR = T2.CO_EMPR             
  And  T1.NU_CNTB_EMPR  = T2.NU_CNTB_EMPR              
  And  T1.CO_UNID_CNTB  = T2.CO_UNID_CNTB              
  And  T1.NU_ANNO  = T2.NU_ANNO                
  And  T1.NU_MESE  = T2.NU_MESE                
  And  T1.CO_OPRC_CNTB  = T2.CO_OPRC_CNTB              
  And  T1.NU_ASTO  = T2.NU_ASTO   
  And  T1.NU_SECU=T2.NU_SECU            
  And  T2.ST_GEST = 'N'            
  And  T2.ST_REDO = 'N'            
  And  T2.ST_DIFE_CAMB = 'N') 'GLOSA',            
 T1.IM_MVTO_CNTB 'IMPORTE CONTABLE', 0 'IMPORTE MON CORPORATIVA', NULL 'ORIGEN', NULL 'GIRADO A',                   
 @VNTO_CARG_0001 'TOTAL CARGO', @VNTO_ABON_0001 'TOTAL ABONO'                  
 From #TWMVTO_CNTB T1         
 INNER JOIN TMAUXI_EMPR T3 ON T1.CO_EMPR=T3.CO_EMPR AND T1.TI_AUXI_EMPR=T3.TI_AUXI_EMPR      
 AND T1.CO_AUXI_EMPR=T3.CO_AUXI_EMPR    
 INNER JOIN TMPLAN_EMPR T4 ON T4.CO_EMPR=T1.CO_EMPR AND T4.CO_CNTA_EMPR=T1.CO_CNTA_EMPR  
UNION ALL    
 Select DISTINCT T1.NU_SECU 'SECUENCIAL', T1.CO_CNTA_EMPR 'CUENTA', 
 T4.DE_CNTA_EMPR 'DESCRIPCIÓN CUENTA',T1.TI_AUXI_EMPR 'TIPO AUXILIAR',                  
 T1.CO_AUXI_EMPR 'CODIGO AUXILIAR', T3.NO_AUXI 'DESCRIPCION AUXILIAR',      
 T1.TI_DOCU 'DOCUMENTO', T1.NU_DOCU 'NUMERO DOC.',                  
 Convert(Varchar(10), T1.FE_DOCU,103) 'FECHA DOC.', T1.TI_OPER 'OPERACION', T1.CO_MONE 'MONEDA',                  
 T1.FA_CAMB 'FACTOR CAMBIO', T1.IM_MVTO_ORIG 'IMPORTE ORIGEN', NULL 'ORDEN SERVICIO', NULL 'DESCRIPCION ORDEN SERV',                 
 NULL 'DOC. REFERENCIA', NULL 'NUM.DOC.REFERENCIA',             
 (Select max(T2.DE_GLOS) from #TWMVTO_CNTB T2            
  Where T1.CO_EMPR = T2.CO_EMPR             
  And  T1.NU_CNTB_EMPR  = T2.NU_CNTB_EMPR              
  And  T1.CO_UNID_CNTB  = T2.CO_UNID_CNTB              
  And  T1.NU_ANNO  = T2.NU_ANNO                
  And  T1.NU_MESE  = T2.NU_MESE                
  And  T1.CO_OPRC_CNTB  = T2.CO_OPRC_CNTB             
  And  T1.NU_ASTO  = T2.NU_ASTO             
  And  T2.ST_GEST = 'N'            
  And  T2.ST_REDO = 'N'            
  And  T2.ST_DIFE_CAMB = 'N' ) 'GLOSA',            
 T1.IM_MVTO_CNTB 'IMPORTE CONTABLE', 0 'IMPORTE MON CORPORATIVA', NULL 'ORIGEN', NULL 'GIRADO A',                   
 @VNTO_CARG_0001 'TOTAL CARGO', @VNTO_ABON_0001 'TOTAL ABONO'                  
 From #TWMVTO_CNTB T1         
 LEFT JOIN TMAUXI_EMPR  T3 ON T1.CO_EMPR=T3.CO_EMPR AND T1.TI_AUXI_EMPR=T3.TI_AUXI_EMPR      
 AND T1.CO_AUXI_EMPR=T3.CO_AUXI_EMPR      
 INNER JOIN TMPLAN_EMPR T4 ON T4.CO_EMPR=T1.CO_EMPR AND T4.CO_CNTA_EMPR=T1.CO_CNTA_EMPR  
 WHERE ISNULL(T3.TI_AUXI_EMPR,'')=''    
 Order By 1          
        
Return                        
/*-------------------------------- Fin -----------------------------*/


GO
